#define _CRT_SECURE_NO_WARNINGS

#include"Sort.h"

void TestInsertSort(int* a,int n)
{
	PrintArray(a, n);

	InsertSort(a, n);

	PrintArray(a, n);
}

void TestBubbleSort(int* a, int n)
{
	PrintArray(a, n);

	BubbleSort(a, n);

	PrintArray(a, n);
}

void TestHeapSort(int* a, int n)
{
	PrintArray(a, n);

	HeapSort(a, n);

	PrintArray(a, n);
}

void TestShellSort(int* a, int n)
{
	PrintArray(a, n);

	ShellSort(a, n);

	PrintArray(a, n);
}

void TestQuickSort1(int* a, int n)
{
	PrintArray(a, n);

	QuickSort1(a, 0, n - 1);

	PrintArray(a, n);
}

void TestQuickSort2(int* a, int n)
{
	PrintArray(a, n);

	QuickSort2(a, 0, n - 1);

	PrintArray(a, n);
}

void TestQuickSort3(int* a, int n)
{
	PrintArray(a, n);

	QuickSort3(a, 0, n - 1);

	PrintArray(a, n);
}

void TestQuickSortNonR(int* a, int n)
{
	PrintArray(a, n);

	QuickSortNonR(a, 0, n - 1);

	PrintArray(a, n);
}

void TestQuickMergeSort(int* a, int n)
{
	PrintArray(a, n);

	MergeSort(a, n);

	PrintArray(a, n);
}

void TestQuickMergeNonRSort(int* a, int n)
{
	PrintArray(a, n);

	MergeSortNonR(a, n);

	PrintArray(a, n);
}

void TestCountSort(int* a, int n)
{
	PrintArray(a, n);

	CountSort(a, n);

	PrintArray(a, n);
}

int main()
{
	int arr[] = { 3,3,9,6,8,7,5,4,2,1 };
	int n = sizeof(arr) / sizeof(int);
	//TestInsertSort(arr, n);
	//TestBubbleSort(arr, n);
	//TestHeapSort(arr, n);
	//TestShellSort(arr, n);
	//TestQuickSort1(arr, n);
	//TestQuickSort2(arr, n);
	//TestQuickSort3(arr, n);
	//TestQuickSortNonR(arr, n);
	//TestQuickMergeSort(arr, n);
	//TestQuickMergeNonRSort(arr, n);
	TestCountSort(arr, n);
	return 0;
}